package ga;

import java.util.ArrayList;

public class listaObjCampo {
	
		//constructoras
		public listaObjCampo(ArrayList<ObjCampo> l) {
			this.listaObj = l;
		}
		
		public listaObjCampo(){
			this.listaObj = new ArrayList<ObjCampo>();
		}
		
		
		public ObjTipo getTipoCampo(String ident){
			for(int t=0; t<listaObj.size();t++)
				if(listaObj.get(t).getId().equals(ident)){
					return listaObj.get(t).getTipo();
				}
			return new ObjTipo("Error en getTipoCampo con: "+ident);
		}
		
		public void aniadeCampo(ObjCampo cam) {
			this.listaObj.add(cam);		
		}
		
		public int getDespCampo(String ident){
			for(int t=0; t<listaObj.size();t++)
				if(listaObj.get(t).getId().equals(ident)){
					return listaObj.get(t).getDesp();
				}
			return -1;
		}
		
		public boolean estaObj(String ident) {
			boolean esta = false;
			for (int t = 0; t < listaObj.size(); t++){
				if (listaObj.get(t).getId().equals(ident)) esta = true;
			}
			return esta;
		}

		@Override
		public int hashCode() {
			final int p = 31;
			int resultado = 1;
			resultado = p * resultado + (error ? 1231 : 1237);
			if(listaObj == null){
				resultado = p*resultado + 0;
			}
			else{
				resultado = p*resultado + listaObj.hashCode();
			}
			resultado = p*resultado + tamanioLista;
			return resultado;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			listaObjCampo listaObj2 = (listaObjCampo) obj;
			if (error != listaObj2.error)
				return false;
			if (listaObj == null) {
				if (listaObj2.listaObj != null)
					return false;
			} else if (!listaObj.equals(listaObj2.listaObj))
				return false;
			if (tamanioLista != listaObj2.tamanioLista)
				return false;
			return true;
		}
		
		//accesoras y mutadoras	
		public boolean getError() {
			return error;
		}

		public void setError(boolean err) {
			this.error = err;
		}

		public ArrayList<ObjCampo> getListaObj() {
			return listaObj;
		}

		public void setListaObj(ArrayList<ObjCampo> lista) {
			this.listaObj = lista;
		}
		
		public int getTamanioLista() {
			return tamanioLista;
		}

		public void setTamanioLista(int t) {
			this.tamanioLista = t;
		}

		
		//variables privadas
		private boolean error;
		private ArrayList<ObjCampo> listaObj;
		private int tamanioLista = 0;
	
}
